Skip to content

Fix OpenCode dashboard links - #2513

Open
akshayprabhu200 wants to merge 1 commit into
steipete:mainfrom
akshayprabhu200:agent/fix-opencode-dashboard-link
Open

Fix OpenCode dashboard links#2513
akshayprabhu200 wants to merge 1 commit into
steipete:mainfrom
akshayprabhu200:agent/fix-opencode-dashboard-link

Conversation

@akshayprabhu200

@akshayprabhu200 akshayprabhu200 commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Summary

  • send the OpenCode and OpenCode Go dashboard actions to the official https://opencode.ai/auth entry point instead of the public homepage
  • use the auth entry point as OpenCode Go's fallback when no workspace is configured
  • preserve the existing workspace-specific /workspace/<id>/go deep link
  • add descriptor and URL-helper regression coverage

Why

The provider descriptors and the OpenCode Go fallback used the bare https://opencode.ai URL, which opens the product homepage rather than the account flow. OpenCode's official provider documentation directs both Zen and Go users to https://opencode.ai/auth.

When CodexBar already knows an OpenCode Go workspace, it still opens that workspace's Go dashboard directly. This change only fixes the generic fallback.

Behavior proof

  • Before: both provider descriptors and the unscoped OpenCode Go helper resolved to https://opencode.ai.
  • After: both descriptors and the unscoped helper resolve to https://opencode.ai/auth.
  • A clean logged-out browser navigation to /auth reached OpenCode's authorization service.
  • The existing configured-workspace case remains https://opencode.ai/workspace/wrk_abc123/go.

Inspectable after-fix production-code trace (official swift:6.3.3-noble image, digest
sha256:66520bcba471018a34fd54ba09be97ba4abebd950a96ff5cb8c2bf50a2d33259):

LIVE_PROOF opencode.generic=https://opencode.ai/auth
LIVE_PROOF opencodego.unscoped=https://opencode.ai/auth
LIVE_PROOF opencodego.scoped=https://opencode.ai/workspace/wrk_REDACTED/go
✔ Test run with 1 test in 1 suite passed after 0.002 seconds.

This trace calls OpenCodeProviderDescriptor.descriptor.metadata.dashboardURL and
OpenCodeGoUsageFetcher.dashboardURL(workspaceID:) directly. The scoped workspace ID
is deliberately fictitious; no cookies, credentials, or account data were read or printed.
The temporary trace-only harness was deleted after the run and is not part of this PR.

Official reference: OpenCode provider documentation.

Existing issue / PR search

No matching issue or PR was found. The closest prior work was #667, which fixed the configured workspace deep link and was landed separately on main; this patch preserves that behavior and fixes the remaining no-workspace fallback.

Validation

  • make format
  • git diff --check
  • make check portable checks and SwiftFormat passed; local SwiftLint could not load SourceKit because this machine has Apple Swift 5.10, while current CodexBar requires Swift 6.2+
  • focused swift test was likewise blocked locally by the Swift 5.10 toolchain
  • exact-head full CI run 30529938152 passed: lint, Linux x64, Linux ARM64, musl, both macOS shards, and the aggregate gate

@akshayprabhu200
akshayprabhu200 force-pushed the agent/fix-opencode-dashboard-link branch from fb112e2 to 98eb24a Compare July 30, 2026 08:13
@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. labels Jul 30, 2026
@clawsweeper

clawsweeper Bot commented Jul 30, 2026

Copy link
Copy Markdown

Codex review: needs maintainer review before merge. Reviewed July 31, 2026, 12:25 PM ET / 16:25 UTC.

ClawSweeper review

What this changes

Changes generic OpenCode and OpenCode Go dashboard links from the homepage to https://opencode.ai/auth, while retaining OpenCode Go’s configured workspace-specific /workspace/&lt;id>/go route and adding regression tests.

Merge readiness

⚠️ Ready for maintainer review - 1 item remains

The PR is a focused, source-confirmed dashboard-routing fix with sufficient redacted runtime proof and no discrete correctness or security finding. It should stay open for ordinary maintainer merge review; this repository's conservative onboarding profile does not permit automatic cleanup or closure here.

Priority: P3
Reviewed head: 98eb24a288140ce2d7a99f4aba1b60c64563cba6

Review scores

Measure Result What it means
Overall readiness 🐚 platinum hermit (4/6) A focused, well-scoped patch with strong direct behavior evidence and no supported correctness finding.
Proof confidence 🦞 diamond lobster (5/6) Sufficient (terminal): The contributor supplied a redacted after-fix terminal trace that directly invokes the changed production URL paths, shows both generic /auth outcomes and the preserved configured-workspace outcome, and avoids account data.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Verification

Check Result Evidence
Real behavior Verified Sufficient (terminal): The contributor supplied a redacted after-fix terminal trace that directly invokes the changed production URL paths, shows both generic /auth outcomes and the preserved configured-workspace outcome, and avoids account data.
Evidence reviewed 6 items Current generic routing: The menu action special-cases OpenCode Go through the settings URL helper; all other providers, including OpenCode, use provider metadata. Current main therefore reaches the two exact values changed by this PR.
Current fallback is source-reproducible: On current main, the OpenCode Go helper preserves a normalized workspace-specific URL but returns the bare homepage when no workspace ID is present; the PR changes only that fallback to /auth.
Patch scope: The submitted head changes the two provider descriptors, the unscoped OpenCode Go fallback, and focused descriptor/helper assertions; it does not alter cookie, request, or workspace parsing behavior.
Findings None None.
Security None None.

How this fits together

CodexBar’s menu-bar dashboard action selects a provider and resolves its destination URL before opening it with macOS. Most providers use descriptor metadata; OpenCode Go has a settings-aware route that keeps a configured workspace deep link and otherwise falls back to a generic destination.

flowchart LR
    A[Menu bar dashboard action] --> B[Selected provider]
    B --> C{OpenCode Go?}
    C -->|Yes| D[Workspace-aware URL helper]
    C -->|No| E[Provider descriptor metadata]
    D --> F[Browser destination]
    E --> F
    D --> G[Configured workspace deep link]
    D --> H[Generic auth entry point]
Loading

Before merge

  • Complete next step (P2) - No repair lane is needed: the patch has no actionable review finding and now awaits ordinary maintainer merge review.
Agent review details

Security

None.

Review metrics

Metric Value Why it matters
Patch size 15 added, 4 removed across 5 files The patch is narrowly limited to two metadata links, one fallback branch, and focused regression coverage.
Route coverage 3 asserted URL outcomes The added and updated tests cover OpenCode, unscoped OpenCode Go, and configured-workspace OpenCode Go behavior.

Technical review

Best possible solution:

Merge the focused descriptor and fallback change after the maintainer confirms the current-head required-check state, keeping the existing workspace-specific OpenCode Go route intact.

Do we have a high-confidence way to reproduce the issue?

Yes, at source level: current main routes generic OpenCode through descriptor metadata and returns https://opencode.ai for OpenCode Go without a workspace ID. The PR body also provides an after-fix direct production-code trace for both generic routes and the preserved scoped route.

Is this the best way to solve the issue?

Yes. Updating the shared descriptor metadata plus the single no-workspace helper fallback fixes every current dashboard-action path without changing configured workspace behavior, cookie handling, or provider fetching.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against 8ef86077e70a.

Labels

Label justifications:

  • P3: This is a contained dashboard-navigation correction with limited blast radius and an existing behavior-preservation test.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🦞 diamond lobster and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (terminal): The contributor supplied a redacted after-fix terminal trace that directly invokes the changed production URL paths, shows both generic /auth outcomes and the preserved configured-workspace outcome, and avoids account data.
  • proof: sufficient: Contributor real behavior proof is sufficient. The contributor supplied a redacted after-fix terminal trace that directly invokes the changed production URL paths, shows both generic /auth outcomes and the preserved configured-workspace outcome, and avoids account data.

Evidence

What I checked:

  • Current generic routing: The menu action special-cases OpenCode Go through the settings URL helper; all other providers, including OpenCode, use provider metadata. Current main therefore reaches the two exact values changed by this PR. (Sources/CodexBar/StatusItemController+Actions.swift:349, 8ef86077e70a)
  • Current fallback is source-reproducible: On current main, the OpenCode Go helper preserves a normalized workspace-specific URL but returns the bare homepage when no workspace ID is present; the PR changes only that fallback to /auth. (Sources/CodexBarCore/Providers/OpenCodeGo/OpenCodeGoUsageFetcher.swift:262, 8ef86077e70a)
  • Patch scope: The submitted head changes the two provider descriptors, the unscoped OpenCode Go fallback, and focused descriptor/helper assertions; it does not alter cookie, request, or workspace parsing behavior. (Sources/CodexBarCore/Providers/OpenCodeGo/OpenCodeGoUsageFetcher.swift:264, 98eb24a28814)
  • Existing scoped-route provenance: Feature history identifies an earlier main-branch change, 61177d789088783991eb2f4babc0a3e8dc32441d (“fix: open OpenCode Go workspace dashboard”), which matches the scoped behavior this PR deliberately preserves. (Sources/CodexBar/Providers/OpenCodeGo/OpenCodeGoSettingsStore.swift:36, 61177d789088)
  • Current release boundary: The checked-out main includes the latest release commit tagged v0.46.0; the proposed fix commit is not on main and therefore is not in that release. (b1170d83963d)
  • After-fix behavior proof: The PR body supplies a redacted production-code trace showing the two generic routes resolve to /auth and a configured workspace still resolves to /workspace/wrk_REDACTED/go; no credentials or account data are included. (98eb24a28814)

Likely related people:

  • Peter Steinberger: Current main blames the dashboard metadata and fallback lines to the v0.46.0 boundary authored by Peter, and feature history records Peter’s workspace-dashboard fix. (role: recent area contributor and scoped-route introducer; confidence: high; commits: b1170d83963d, 61177d789088; files: Sources/CodexBarCore/Providers/OpenCode/OpenCodeProviderDescriptor.swift, Sources/CodexBarCore/Providers/OpenCodeGo/OpenCodeGoUsageFetcher.swift, Sources/CodexBar/Providers/OpenCodeGo/OpenCodeGoSettingsStore.swift)
  • Ratul Sarna: History shows Ratul’s initial OpenCode Go provider and workspace-auth fallback work adjacent to the settings-aware routing path. (role: OpenCode Go feature contributor; confidence: medium; commits: 31bd4812d227, 20784e00eaed; files: Sources/CodexBarCore/Providers/OpenCodeGo/OpenCodeGoUsageFetcher.swift, Sources/CodexBar/Providers/OpenCodeGo/OpenCodeGoSettingsStore.swift)

Rating scale

Score Internal tier Crab rank Meaning
6/6 S 🦀 challenger crab Exceptional readiness
5/6 A 🦞 diamond lobster Very strong readiness
4/6 B 🐚 platinum hermit Good normal PR; ordinary maintainer review
3/6 C 🦐 gold shrimp Useful, but confidence is limited
2/6 D 🦪 silver shellfish Proof or implementation needs work
1/6 F 🧂 unranked krab Not merge-ready
N/A NA 🌊 off-meta tidepool Rating does not apply

Overall follows the weaker of proof and patch quality.
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

Workflow

  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

History

Review history (6 earlier review cycles)
  • reviewed 2026-07-30T08:18:18.605Z sha 98eb24a :: needs real behavior proof before merge. :: none
  • reviewed 2026-07-30T08:28:56.896Z sha 98eb24a :: needs real behavior proof before merge. :: none
  • reviewed 2026-07-30T08:52:57.737Z sha 98eb24a :: needs maintainer review before merge. :: none
  • reviewed 2026-07-30T09:18:30.333Z sha 98eb24a :: needs maintainer review before merge. :: none
  • reviewed 2026-07-30T09:55:29.711Z sha 98eb24a :: needs maintainer review before merge. :: none
  • reviewed 2026-07-30T15:51:52.444Z sha 98eb24a :: needs maintainer review before merge. :: none

@akshayprabhu200
akshayprabhu200 marked this pull request as ready for review July 30, 2026 08:25

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

The PR body now includes a redacted, inspectable after-fix production-code trace for the generic OpenCode, unscoped OpenCode Go, and configured-workspace routes. The temporary trace harness was deleted and was never committed or pushed.

@clawsweeper

clawsweeper Bot commented Jul 30, 2026

Copy link
Copy Markdown

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: when the review finishes, ClawSweeper will create the durable review comment if needed or update the existing comment in place.

Re-review progress:

@clawsweeper clawsweeper Bot added proof: sufficient Contributor real behavior proof is sufficient. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Jul 30, 2026
@akshayprabhu200
akshayprabhu200 marked this pull request as draft July 30, 2026 09:14
@akshayprabhu200
akshayprabhu200 marked this pull request as ready for review July 30, 2026 09:15
@akshayprabhu200
akshayprabhu200 marked this pull request as draft July 30, 2026 09:50
@akshayprabhu200
akshayprabhu200 marked this pull request as ready for review July 30, 2026 15:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. proof: sufficient Contributor real behavior proof is sufficient. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant